package com.wx.chapter19;

/**
 * @Author : 佩萁
 * Description :
 * @Create : 2023/8/30 - 10:40
 */
public class Test_ {
    public static void main(String[] args) {
        FileReader_ fileReader_ = new FileReader_();//这里如果调用readFile()方法  调用的就是FileReader_里面的readFile()方法
//        fileReader_.readFile();

        BufferedReader_ bufferedReader_ = new BufferedReader_(fileReader_);//我们在BufferedReader_构造器中接收了Reader_类型以及它的子类
        //bufferedReader_.readFiles(10);//调用拓展后的方法
        bufferedReader_.readFile();//这个地方我们需要在BufferedReader_中再封装一层不然调用的是Reader_下的原始方法，如果不再封装一层调用最初的方法,
        // 因为这里运行时类型是BufferedReader_我们发现在它下面没有readFile()方法，那么我们就要去它的父类找该方法，它的父类是Reader_,在里面有该方法我们就调用

        System.out.println(bufferedReader_.name);//当编译类型和运行时类型不一致就会出现多态现象，遵循一条原则：对象调用编译时类型的属性和运行时类型的方法
    }
}
